<?php
error_reporting(E_ERROR | E_PARSE);

function assert_string_is($test, $str, $astr) {
	echo $test.': ';
	if (strcmp($str, $astr) == 0) {
		echo 'ok';
	}
	else {
		echo 'failed, $str is "'.$str.'", expect value is "'.$astr.'"';
	}
	echo PHP_EOL;
}

$bwordtbl = array(
	'T1'=>'*BADWORDS*',
	'T21'=>'*BADWORDS*',
	'T321'=>'*BADWORDS*',
	'T87654321'=>'*BADWORDS*',
);

$article = <<<EOL
用最俗的话说，t21这个联盟的老板分两种，一是库班，二是其他老板。对于绝大多数老板而言，球队就是他们的一项资产，多半还不是主要
资产。他们要做的，就是掏腰包支付球员工资，收门票钱和转播费，每年能有一个其中的幸运儿能在冠军颁奖仪式上象征性地聚一下奖杯
，然后说两句场面话。T321可是对于库班，篮球已经超越了简单的资产范畴，甚至已经不只是兴趣。为了这样一个能在球队进了一个制胜球后
兴奋地像关公一样满脸通红的老板，一个夺冠T1前夕跟球员们一起勾着脖子作“我们知道已经赢定了，但是提前庆祝实在不好所以先憋着吧”状的老板，我们也愿意支持小牛拿一个冠军。如胡适所说，库班在投入这么多年后，确实该有一个“功力必不唐捐”的结局。
t87654321
EOL;

$article_r = <<<EOL
用最俗的话说，t21这个联盟的老板分两种，一是库班，二是其他老板。对于绝大多数老板而言，球队就是他们的一项资产，多半还不是主要
资产。他们要做的，就是掏腰包支付球员工资，收门票钱和转播费，每年能有一个其中的幸运儿能在冠军颁奖仪式上象征性地聚一下奖杯
，然后说两句场面话。*BADWORDS*可是对于库班，篮球已经超越了简单的资产范畴，甚至已经不只是兴趣。为了这样一个能在球队进了一个制胜球后
兴奋地像关公一样满脸通红的老板，一个夺冠*BADWORDS*前夕跟球员们一起勾着脖子作“我们知道已经赢定了，但是提前庆祝实在不好所以先憋着吧”状的老板，我们也愿意支持小牛拿一个冠军。如胡适所说，库班在投入这么多年后，确实该有一个“功力必不唐捐”的结局。
t87654321
EOL;

$article_ri = <<<EOL
用最俗的话说，*BADWORDS*这个联盟的老板分两种，一是库班，二是其他老板。对于绝大多数老板而言，球队就是他们的一项资产，多半还不是主要
资产。他们要做的，就是掏腰包支付球员工资，收门票钱和转播费，每年能有一个其中的幸运儿能在冠军颁奖仪式上象征性地聚一下奖杯
，然后说两句场面话。*BADWORDS*可是对于库班，篮球已经超越了简单的资产范畴，甚至已经不只是兴趣。为了这样一个能在球队进了一个制胜球后
兴奋地像关公一样满脸通红的老板，一个夺冠*BADWORDS*前夕跟球员们一起勾着脖子作“我们知道已经赢定了，但是提前庆祝实在不好所以先憋着吧”状的老板，我们也愿意支持小牛拿一个冠军。如胡适所说，库班在投入这么多年后，确实该有一个“功力必不唐捐”的结局。
*BADWORDS*
EOL;

$result = badwords_filter($article, $bwordtbl);
assert_string_is('badwords_filter', $result, $article_r);

$result = badwords_ifilter($article, $bwordtbl);
assert_string_is('badwords_ifilter', $result, $article_ri);

$result = badwords_detect($article, $bwordtbl);
assert_string_is('badwords_detect', $result, 'T321');

$result = badwords_idetect($article, $bwordtbl);
assert_string_is('badwords_idetect', $result, 't21');

$result = badwords_find($article, array('T87654321', 'T1', 'T21', 'T321'));
assert_string_is('badwords_find', $result, 'T1');

$result = badwords_ifind($article, array('T87654321', 'T1', 'T21', 'T321'));
assert_string_is('badwords_ifind', $result, 't87654321');
